package _my_demo;

/*
    素数的定义
        素数必须大于 1。
        素数只有两个正因数：1 和它本身。
        非素数称为合数。
 */
public class SuShu {
    public static void main(String[] args) {

    }
    //暴力法
    public static boolean isSuShu(int num) {
        if (num <= 1){
            return false;
        }
        for (int i = 2; i < num; i++) {     //遍历2到num - 1
            if (num % i == 0){
                return false;
            }
        }
        return true;
    }


    //优化法
    public static boolean isSuShu01(int num) {

        if (num <= 1){  //小于等于1，不是素数
            return false;
        }
        if (num == 2) { //2是素数
            return true;
        }
        if (num % 2 == 0){  //偶数不是素数（除了2以外）
            return false;
        }
        for (int i = 3; i <= Math.sqrt(num); i += 2) { // 检查奇数因子
            if (num % i == 0) {
                return false; // 如果能整除，则不是素数
            }
        }
        return true;            //否则是素数
    }
}
